fix(harness): stream Docker exec commands through stdin#2148
Conversation
|
u010143241 seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account. You have signed the CLA already but the status is still pending? Let us recheck it. |
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
AgentScopeJavaBot
left a comment
There was a problem hiding this comment.
🤖 AI Review
Changes Docker sandbox command execution from sh -c to sh -s (stdin pipe), solving Windows command-line length limits, UTF-8 escaping issues, and process argument exposure. Well-scoped change (2 files, +108/-12) with comprehensive tests. Clean implementation, no issues found.
|
Please sign the CLA at: https://cla-assistant.io/agentscope-ai/agentscope-java?pullRequest=2148 Code Review (pending CLA)Summary: Runs Docker sandbox shell programs through docker exec -i ... sh -s to avoid Windows command-line corruption and length limits. Findings:
Verdict: Essential fix for Windows Docker deployments. Ready to merge once CLA is signed. Automated review by github-manager |
Summary
docker exec -i ... sh -sWhy
docker exec ... sh -c <command>puts the complete shell program in the WindowsCreateProcessargument list. Complex nested quoting can be corrupted, and large filesystem scripts can exceed the host command-line limit.The public Sandbox API and command semantics remain unchanged; only the Docker CLI transport changes.
Tests
mvn -pl agentscope-harness spotless:check test -Dtest=DockerSandboxCommandTest,BaseSandboxFilesystemTest,HarnessAgentDistributedSandboxTest -Dsurefire.failIfNoSpecifiedTests=falseAGENTSCOPE_DOCKER_INTEGRATION=true mvn -pl agentscope-harness test -Dtest=DockerSandboxCommandTest$(dirname ...), paths with spaces, and a 100KB shell program2.0.1-SNAPSHOTCloses #2135.
Addresses #1560.